package com.atguigu.jedis;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

import javax.print.attribute.standard.PresentationDirection;

/*
 *  Nosql 不支持JDBC(sql)
 *
 *  ①创建连接池，
 *    从池子中借一个客户端对象(JDBC Connection)
 *  ②用客户端发命令
 *  ③用完，还回池子
 */
public class CustomJedisPoolDemo {
    public static void main(String[] args) {
        //池子配置
        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
        //设置池子的总大小
        jedisPoolConfig.setMaxTotal(20);
        //设置池子的存活连接数在5-10之间
        jedisPoolConfig.setMinIdle(5);
        jedisPoolConfig.setMaxIdle(10);
        //当池子中的连接都被借走了，又有人借连接。是否阻塞（吊着他）
        jedisPoolConfig.setBlockWhenExhausted(true);
        //过了60000，还没有连接，就回绝
        jedisPoolConfig.setMaxWaitMillis(60000);
        jedisPoolConfig.setTestOnReturn(true);
        jedisPoolConfig.setTestOnBorrow(true);

        JedisPool jedisPool = new JedisPool(jedisPoolConfig, "hadoop103", 6379);
        //借连接
        Jedis jedis = jedisPool.getResource();

        System.out.println(jedis.ping());
        //还回池子
        jedis.close();
    }
}



//public class CustomJedisPoolDemo {
//    public static void main(String[] args) {
//        //池子配置
//        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
//        //池子的总大小
//        jedisPoolConfig.setMaxTotal(20);
//        //池子的存活连接数在5-10之间
//        jedisPoolConfig.setMinIdle(5);
//        jedisPoolConfig.setMaxIdle(10);
//        //当池子中的连接都被借走了，又有人来借连接，是否阻塞
//        jedisPoolConfig.setBlockWhenExhausted(true);
//        //过了60000，还没有连接，就回绝
//        jedisPoolConfig.setMaxWaitMillis(60000);
//        jedisPoolConfig.setTestOnReturn(true);
//        jedisPoolConfig.setTestOnBorrow(true);
//
//        JedisPool jedisPool = new JedisPool(jedisPoolConfig, "hadoop102", 6379);
//
//        //借连接
//        Jedis jedis = jedisPool.getResource();
//
//        System.out.println(jedis.ping());
//
//        //还回池子中
//        jedis.close();
//    }
//}


//public class CustomJedisPoolDemo {
//    public static void main(String[] args) {
//        //池子配置
//        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
//        //池子的总大小
//        jedisPoolConfig.setMaxTotal(20);
//        //池子的存活连接数在5-10之间
//        jedisPoolConfig.setMinIdle(5);
//        jedisPoolConfig.setMaxIdle(10);
//        //当池子中的连接都被借走了，又有人来借连接，是否阻塞
//        jedisPoolConfig.setBlockWhenExhausted(true);
//        //过了60000，还没有连接，就回绝
//        jedisPoolConfig.setMaxWaitMillis(60000);
//        jedisPoolConfig.setTestOnReturn(true);
//        jedisPoolConfig.setTestOnBorrow(true);
//
//        JedisPool jedisPool = new JedisPool(jedisPoolConfig, "hadoop102", 6379);
//
//        //借连接
//        Jedis jedis = jedisPool.getResource();
//
//        System.out.println(jedis.ping());
//
//        //还回池子中
//        jedis.close();
//    }
//}

//public class CustomJedisPoolDemo {
//    public static void main(String[] args) {
//        //配置池子
//        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
//        //池子的总大小
//        jedisPoolConfig.setMaxTotal(20);
//        //池子中存活的连接数在5-10之间
//        jedisPoolConfig.setMinIdle(5);
//        jedisPoolConfig.setMaxIdle(10);
//        //如果池子中的连接都被借走了，又有人来借连接，是否阻塞
//        jedisPoolConfig.setBlockWhenExhausted(true);
//        //过了60000，还没连接，就回绝
//        jedisPoolConfig.setMaxWaitMillis(60000);
//        jedisPoolConfig.setTestOnReturn(true);
//        jedisPoolConfig.setTestOnBorrow(true);
//
//
//        JedisPool jedisPool = new JedisPool(jedisPoolConfig, "hadoop102", 6379);
//
//        //借连接
//        Jedis jedis = jedisPool.getResource();
//
//        System.out.println(jedis.ping());
//
//        //还回池子中
//        jedis.close();
//    }
//}


//public class CustomJedisPoolDemo {
//    public static void main(String[] args) {
//        //池子配置
//        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
//        //池子的总大小
//        jedisPoolConfig.setMaxTotal(20);
//        //池子中的存活连接数在5-10之间
//        jedisPoolConfig.setMinIdle(5);
//        jedisPoolConfig.setMaxIdle(10);
//        //如果池子中的连接都被借走了，又有人来借连接，是否阻塞
//        jedisPoolConfig.setBlockWhenExhausted(true);
//        //过了60000，还没连接，就回绝
//        jedisPoolConfig.setMaxWaitMillis(60000);
//        jedisPoolConfig.setTestOnReturn(true);
//        jedisPoolConfig.setTestOnBorrow(true);
//
//        JedisPool jedisPool = new JedisPool(jedisPoolConfig, "hadoop102", 6379);
//
//        //借连接
//        Jedis jedis = jedisPool.getResource();
//
//        System.out.println(jedis.ping());
//
//        //还池子
//        jedis.close();
//    }
//}
